<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>javascript 阶段</title>
</head>
<body>
    <h3>隐式转换</h3>
    <p> 自动转换（浏览器）</p>

    <script>
       
        // == 值相等运算符 
        // 字符串
        var str = ""; //  false   0 

        // 数字
        var num = 0; //  false  ""

        // 布尔值
        var isOpen = false;  // 0  ""

        // 记忆： 
        console.log("" == false );// true
        console.log("" == 0 );// true
        console.log("" == [] );// true
        console.log(0  == false );// true
        console.log(1  == true );// true
        console.log(null  == undefined );// true

        console.log("-----");
        // 判断语句
        var isMouseDown = false;
        if(isMouseDown == true){
            console.log("第1句话");
        }
        if(isMouseDown){// 隐式转换 isMouseDown == true
            console.log("第2句话");
        }
        
        if(str){//  ""
            console.log("第3句话");
        }
        if(num){//  0
            console.log("第4句话");
        }

        var arr = [];
        if(arr){//  例外：空数组存在,表示条件是成立
            console.log("第5句话");
        }

        console.log("-----");
        // 运算符
        // +  
        // 字符串 + 数字 ，表示字符串拼接(转string类型)
        console.log("11" + 22);// 1122 
        console.log(11 + 22);// 33 
        console.log("11" + true);// 11true   字符串
        console.log("11" + "hello");// 11hello    字符串
        console.log("11" + undefined);// 11undefined    字符串

        // - 
        // 数字字符串 - 数字 ， 表示转number类型
        console.log("100" - 0);// 100 
        console.log(typeof ("100" - 0));// number

        // 非数字字符串 - 数字 ， 表示非数字（NaN）
        console.log("abc" - 0); // NaN


    </script>
</body>
</html>